Anleitung zur Installation des IO-Warrior Treibers fr Linuxkernel bis V2.6.8 oder SuSE 9.1


1. Vorbereitungen

1.1 Das Modul 'hid.ko' patchen
Um zu verhindern, da der HID-Input Treiber sich um den IO-Warrior kmmert, ist ein Eintrag in der Sperrliste der Datei 'hid-core.c' notwendig. Diese Datei ist Bestandteil des Moduls 'hid.ko'. Je nach Geschmack und / oder Notwendigkeiten kann mit der mitgelieferten Sourcedatei das Modul selber gebaut werden oder das fertige Modul (fr SuSE 9.1) in den entsprechenden Ordner des Rechners kopiert werden. Der Pfad fr diesen Ordner lautet normalerweise
	'/lib/modules/<version>/kernel/drivers/usb/input/'
Es empfiehlt sich in jedem Fall die Originaldatei an einem anderen Ort zu sichern. Wenn die Datei nur umbenannt wird, kann es dazu kommen, dass beide Module geladen werden.

1.2 Installieren des IO-Warrior Treibers
Wenn der Treiber nur zu Testzwecken geladen werden soll, so gengt die Ausfhrung von 'insmod iowarrior.ko'. Um den Treiber wieder zu entladen entsprechend 'rmmod iowarrior', sofern dies vom Kernel untersttzt wird. Soll der Treiber jedoch dauerhaft installiert werden, so ist die Datei 'iowarrior.ko' in den Ordner
	'/lib/modules/<version>/kernel/drivers/usb/misc/'
zu kopieren (fr SuSE 9.1) und die Modulabhngigkeiten mssen mit dem Kommando 'depmod' aktuallisiert werden. Diese Schritte fhrt auch der erste Teil des Shellskripts 'iowarrior_load' aus, sofern es mit root-Rechten aufgerufen wird.
Mit einem Eintrag wie z.B. "modprobe iowarrior" in der Datei '/etc/init.d/boot.local' kann der Treiber bei jedem Systemstart automatisch geladen werden.

1.3 Erzeugen der Gerteknoten
Die Zugriffe auf den IO-Warrior erfolgen ber Eintrge im '/dev'-Verzeichnis. Diese mssen im Normalfall jedoch erst noch erstellt werden. Zu diesem Zweck ist der zweite Abschnitt im Shellscript 'iowarrior_load' vorgesehen. Der Aufruf mu, wie bereits erwhnt, mit root-Rechten erfolgen. Mit seiner Hilfe werden die Gerteknoten "/dev/usb/iowarrior<X>" erzeugt, wobei <X> den Zahlen von 0 bis 15 entspricht. Es knnen damit bis zu acht IO-Warrior gleichzeitig angeschlossen werden (siehe auch Abschnitt 2).



2. Zugriffe auf den IO-Warrior

Fr jedes Interface des IO-Warrior wird ein Gerteknoten belegt, d.h. die aktuellen IO-Warrior belegen zwei Gerteknoten. Den ersten fr den Zugriff auf die einfache I/O-Funktion und den zweiten fr die Special Mode Functions. Der Treiber besitzt einen internen Puffer von z. Zt. 16 Paketen pro Interface. Wenn es zu einem Pufferberlauf kommt, so wird das lteste Paket verworfen. Um feststellen zu knnen, ob ein Pufferberlauf stattgefunden hat, wird jedem Paket eine Seriennummer mitgegeben (nicht zu verwechseln mit der Seriennummer des IO-Warriors). Dabei handelt es sich um einen vorzeichenlosen 8-Bit Wert, der fr jedes Paket um eins erhht wird ( ... 254, 255, 0, 1, usw.). Diese Seriennummer steht jedoch nur bei der Dateioperation "read" zur Verfgung und nicht bei Lesezugriffen mittels "ioctl". Um die Seriennummer zu erhalten, mu der Lesepuffer der "read"-Funktion um ein Byte erweitert werden. In diesem befindet sich dann nach erfolgreicher Ausfhrung die Seriennummer des Paketes.

Weitere Einzelheiten zur Ansteuerung eines IO-Warrior knnen den Beispielprogrammen entnommen werden.
